/*
 * @lc app=leetcode.cn id=209 lang=javascript
 *
 * [209] 长度最小的子数组
 */

// @lc code=start
/**
 * @param {number} s
 * @param {number[]} nums
 * @return {number}
 */
var minSubArrayLen = function(s, nums) {
    let len = nums.length,
        l = 0,      // 表示在[l...r]中找到符合s的连续子数组
        r = 0,
        sum = nums[0],        // 用来记录当前数组中的和
        res = len;      // 满足条件的最小长度
    
    while(r < len) {
        if(sum === s) {
            res = Math.min(res, r-l+1);
            sum = sum - nums[l++] + nums[++r];
        } else if(sum > s) {
            sum -= nums[l++];
        } else {
            sum += nums[++r];
        }
        console.log(sum);
    }
    
    return res;
};
let res = minSubArrayLen(7, [2,3,1,2,4,3]);
console.log(res);
// @lc code=end

